Intermediate Viewer for Transferring Information Elements via a Transfer Buffer to a Plurality of Sets of Destinations

ABSTRACT

A method for viewing and controlling data intermediately between source and destination by receiving from a graphical user interface a user designation of a plurality of sets of copy command destination positions within contents of a computer file, wherein each destination point is allowed to be included in more than one set of destination points; displaying to the user information elements contained in an operating system clipboard transfer buffer; receiving a user selection of information elements in the clipboard transfer buffer; receiving a user definition of a subset of the previously-designated copy command destination positions; and automatically copying the selected information elements to positions in the computer file corresponding according to the user defined subset of copy command destination positions.

CROSS-REFERENCE TO RELATED APPLICATIONS Claiming Benefit Under 35 U.S.C.120

This application is a continuation of U.S. patent application Ser. No.10/703,012, filed on Nov. 6, 2003, which is currently under allowance,and which was related to U.S. patent application Ser. No. 10/455,159,now issued as U.S. Pat. No. 7,310,781, filed on Jun. 5, 2003, by Yen-FuChen, et al.

FEDERALLY SPONSORED RESEARCH AND DEVELOPMENT STATEMENT

This invention was not developed in conjunction with any Federallysponsored contract.

MICROFICHE APPENDIX

Not applicable.

INCORPORATION BY REFERENCE

The related patent application Ser. No. 10/703,012, filed on Nov. 6,2003, and U.S. patent application Ser. No. 10/455,159, now issued asU.S. Pat. No. 7,310,781, filed on Jun. 5, 2003, by Yen-Fu Chen, et al.,are incorporated by reference, in their entireties, including figures,to the present patent application

BACKGROUND OF THE INVENTION

1. Field of the Invention

This application is a continuation of U.S. patent application Ser. No.10/703,012, filed on Nov. 6, 2003, which is currently under allowance,and which was related to U.S. patent application Ser. No. 10/455,159,now issued as U.S. Pat. No. 7,310,781, filed on Jun. 5, 2003, by Yen-FuChen, et al. This invention relates to the arts of computer userinterfaces and data exchange between program entities such as instancesof programs in a multi-tasking computer system, and especially tocomputer methods for transferring information from multiple sources intoa single user interface which allows the content to be managed, edited,and manipulated before delivering it to one or more destinations.

2. Background of the Invention

Modern multi-tasking computers provide a variety of user interfaces forcontrolling multiple application programs and system functions whichoperate simultaneously. Some of the most widely used multi-taskingcomputer systems are personal computers (“PC”) running a multi-taskingoperating system (“OS”) such as International Business Machines' (“IBM”)OS/2™ or AIX™, Microsoft Windows™, and Apple Computer's MacOS™. Otheroperating systems may be used with personal computers as well as largercomputers such as enterprise-class computers, such as UNIX, SunMicrosystems' Solaris™, Hewlett Packard's HP-UX™, and the “open sourced”LINUX. Smaller computing platforms such as held-held computers, personaldigital assistants (“PDA”), and advanced wireless telephones may runoperating systems targeted for such hardware including Palm Computing'sPalmOS™ and Microsoft's Windows CE™. Additionally, there are many“proprietary” and less widely-used computing platforms and operatingsystems which also allow users to control and run multiple programs andsystem functions simultaneously.

Many of these systems will use tabs, icons, windows, frames, pages andspecial key combinations to allow a user to switch between userinterfaces (“UI”) for each program and system function which is beingexecuted, or to start or stop the execution of a program or systemfunction. For example, in a personal computer running MS Windows™, theuser may first start a web browser program running using several methods(e.g. double clicking an icon on the desktop, selecting the program froma Start Programs list, operating a “hot key”, etc.), and then may starta document editor program using similar methods. Each programestablishes a user interface such as its own “window”. The user can thencontrol a program by selecting its window using one of several availablemethods, such as selecting a button or icon on a command bar, activatinga “task list” and selecting a program, etc. As a result, a user canstart and run many programs simultaneously, periodically switchingbetween their user interfaces to accomplish work or entertainment tasksas needed. Other computing systems provide similar basic user controlcapabilities, albeit with a variety of user controls to switch betweenprograms and system functions.

Users often wish to copy or transfer information or “content” from oneprogram or system function to another. For example, a user may bepreparing an invoice for a client using a word processor program, butmay also be simultaneously using a database or spreadsheet program toperform various calculations. Using “copy and paste” functions of theapplication programs and the operating system, the user may selectinformation from a source program (e.g. the spreadsheet), and “paste” itinto the destination program (e.g. the invoice being edited). Such aprocess is so common place in computer users' daily lives that it isrote, albeit each user may know several sequences of actions for severalcomputers which he or she commonly uses (e.g. one process on his homePC, another on his PDA, and another on his networked terminal at work).These memorized methods may typically include several steps of clickingon icons, dropping down lists, highlighting information, and usingnavigation controls within program UI's.

For example, turning to FIG. 1, a “windows” style user interface isdepicted to illustrate a process of “copying” information from a webbrowser program to a word processor file via a “clipboard” memory. Inthis system, each program provides a window (2, 3, 104) which can beclosed (9, 9′) to end the program, maximized (8, 8′) to view the full UIfor that program, or minimized (7, 7′) to leave the program running butdeactivate the UI (e.g. clear the UI window from the screen). In thisexample, these controls are located in a command bar (4, 4′) along thetop of the UI window, but many other variations are known in the art.

Each UI window also typically has navigation controls such as leftpanning (15, 15′), right panning (13, 13′), and horizontal scroll (14,14′) controls, as well as up panning (10, 10′), down panning (12, 12′),and vertical scroll (11, 11′), for viewing areas of information andcontent not completely viewable in the UI. Information, icons, text,graphics, etc., are shown or displayed within (16, 18) the UI windowaccording to the scroll and panning control settings. More recently, theterm “content” (16, 18) has been used to collectively refer to all typesof information which may be displayed or presented in a user interface,including but not limited to text, graphics, still images, animatedimages, video, audio, and hyperlinks.

Now suppose for the purpose of our example, the user has started a wordprocessing program which provides a first UI window (2), and a webbrowser which provides a second UI window (3). Also suppose that theuser is researching information on the Internet using the web browserwhile authoring a paper which is being edited simultaneously using theword processor.

In this example, the user has found information (19) at a hypotheticalweb address (17) that he wants to “quote” in his or her paper. So, theuser must first move the cursor (104) in the word processor to select aninsertion point for the information, then must switch to the web browserUI, select the text (19) in the source content, operate a “copy” commandin the web browser UI which copies (101) the content into a buffer (100)such as a “clipboard”, switch back to the word processor UI, and operatea “paste” or “insert” command, which results in the copied content (19)being inserted into the destination document at the point of insertion(103). The user can repeat this process for many different program UI's(106).

In some software and hardware configurations, the copy buffer may beprovided within a suite of application programs which are “tightlycoupled” or related. Such suites cooperate with each other in ways notpossible with software programs provided by differing suppliers. In manycases, however, the operating system provides a buffer function which isgenerally accessible by all programs, such as the clipboard in the MSWindows™ operating system.

Also, in some situations, the original content with its original formatmay not be acceptable by the destination program, and as such, aspecialized paste or insertion function (105) may be provided by thedestination program or operating system which converts the content to aform useful by the destination program. For example, text copied from aweb page may include color, size, font, style, and hyperlink referenceinformation embedded in the base Hyper Text Markup Language (“HTML”) ofthe source web page. However, not all word processors are able tointerpret all of these special codes and identifiers, so a “paste asplain text” option may be provided by a converter or translator (105)function.

So, to illustrate the complexity and tedious nature of such ordinaryoperations, we present the steps in full to accomplish this examplescenario of simply transferring a block of formatted text from a webpage to a word processor program, starting from a point where the useris editing the destination document in the word processor:

-   -   (a) navigate to the insertion point in the destination document        using the word processor UI window controls (e.g. multiple        clicks on scroll, panning or page up/page down keys);    -   (b) optionally select text or content in the destination        document which is to be replaced;    -   (c) switch to the web browser UI window (e.g. click on an icon        in a task bar, activate a task list and pick a running web        browser program, etc.);    -   (d) navigate in the web browser UI window to find the text or        content desired to be transferred into the document (e.g. use        panning, scrolling, or page up/page down keys);    -   (e) select the source content or text (e.g. click-and-drag over        the content to highlight it)    -   (f) transfer the content to a copy buffer (e.g. click on “Edit”        command, select “copy” option or type Alt-E, Alt-C);    -   (g) switch back to the word processor UI window (e.g. (e.g.        click on a icon in a task bar, activate a task list and pick a        running web browser program, etc.); and    -   (h) operate a “paste” command in the word processor UI window        (e.g. click on “Edit” command, select “paste” option or type        Alt-E, Alt-P).

Each of these operations may actually require several steps (clicking,scrolling, selecting, typing, etc.), so this minimal process mayrepresent 7 to 25 actual user actions. This process must be repeated foreach block of text or content to be transferred from multiple program UIwindows (106), and additional steps may be necessary to achieve a“special paste”, as described above. Also, if the same text or contentis to be inserted into the destination document for file at multiplelocations, the last few operations of this process (h) in addition tosome navigation actions must by performed by the user.

As a result, consolidating information from multiple sources ofinformation may be extremely tedious, frustrating, and tiresome usingthe currently available methods and apparatuses provided in suchcomputing systems. Some systems may provide notably more “user friendly”or intuitive methods, while other systems are much more difficult and“clunky” to use.

Turning to FIG. 2, this process is generalized. Starting at a point ortime (21) when the user is actively working with the destination programUI, the user must navigate (22) within the present document, file, orother computer resource to a point where the content insertion is to bemade, including selecting any content which is to be replaced. Then, theuser must switch (23) to the UI of the first source of information,navigate (24) to the first source content to be transferred, select thatcontent, and operate (25) a copy or cut control in the first source UI.

Next, the user must switch (26) back to the destination UI, and operate(27) an insert or paste command in that UI. If (28) the user wants toinsert or paste that content into multiple destinations, the user mustnavigate (29) to each destination and operate (27) the paste or insertcommand in the destination program UI, until all insertions have beenmade for that source information.

If (200) the user desires to transfer information from other points inthe same source, or from other sources, the user must repeatedly switch(201) to a source UI, navigate to a source content point, select sourceinformation, operate (25) a copy or cut operation, switch (26) back tothe destination UI, and paste or insert (27) the content, until allinformation has been transferred.

Implied, but not shown in detail, in this generalization of the processcan be multiple user actions for each general step. Optionally, optionssuch as conversion of the content may be necessary, which requiresadditional user actions (e.g. the “paste as plain text” example).

So, it is not inconceivable that in the course of authoring a paperusing a word processor and information from several sources, the usermay have to perform hundreds of tedious actions, commands, selections,navigation operations, etc.

In this paradigm, certain conventions have evolved into place which onlymoderately simplify or reduce the burden of such operations. Forexample, performing a “cut” operation usually deletes the selectedsource content from the source file, and places a copy of it into thetransfer buffer, sometimes overwriting the current contents of thetransfer buffer. A “copy” operation typically leaves the selectedinformation unchanged in the source and only places a copy of theinformation in the transfer buffer. Additionally, in the destination UI,a “paste” or “insert” command may copy the contents of transfer bufferto a selected point in the destination document or file, leaving a copyin the transfer buffer for additional pastes or insertions.

In some programs, a “paste special”, “import from clipboard”, or similarcommand may be available with several conversion options to perform aminimal conversion process on each transfer. However, even though theuser may be performing the same “paste special” command over and over,the typical UI does not memorize or “learn” this process, so the user isforced to respond to a number of redundant options and dialogs on eachpaste operation.

The same user interface conventions are followed by many computersystems not only for content or information within a computer resourcesuch as text and graphics within a file, but also for resources (e.g.files, shortcuts, icons, mappings, etc.) within a computing environment(e.g. file system, directories, folders, etc.). For example, whenworking with a MS Windows™ operating system and running the WindowsExplorer program, a user may select a file, directory or folder to move,execute an “Edit-Cut” command sequence, navigate to another directory ordrive, and execute an “Edit-Paste” command to move the selected resourceto the new destination. Similarly, by selecting the source resource,executing a copy command, and then executing a paste command to one ormore destinations, the original resource is not changed but copies of itare deposited at the destination points. Further, by selecting andcopying a source resource, then selecting a destination resource,replacement of the destination resource may be accomplished.

There are a number of “clipboard viewers” available on the market today.For example, Microsoft Windows™ operating system includes a clipboardviewer system tool which allows a user to see the current contents ofthe Windows transfer buffer. There is little or no ability provided bythe clipboard viewer, though, to manipulate or rearrange the contents,but there is provided limited capability to save the contents into a newfile. For example, if a user first goes to the GUI for a first program,and selects a graphic image and a block of text, and then executes a“copy” command, the graphic image and the block of text are copied intothe clipboard. So, if the user now goes to the GUI for the clipboardviewer, he or she will see the graphic image and the text. However, heor she may not edit the text, or save only the image, etc., as alloperations must be performed on the entirety of the contents of theclipboard (e.g. save everything to a new file, paste everything to adestination GUI, etc.).

Other, more advanced clipboard viewer programs, typically “freeware” and“shareware programs, allow some manipulation of the contents of theclipboard, but allow “pasting” of the information only to onedestination document, file, folder or GUI.

There are many situations, however, where that it is desirable tocollect up information into a transfer buffer from multiple sourceswithout replacing or overwriting the contents of the buffer (e.g.concatenate or merge select information elements), and subsequentlythere is a need to deliver subsets of that collected information tomultiple destination programs, folders, documents or GUIs. For example,consider a situation where a programmer is editing the source code for anew software program, and simultaneously creating in another GUI(presumably with another program) a comments or release notes file. Ashe or she cuts-and-pastes information from several sources (e.g. from aweb browser with online example code, a white paper with a high levelfunctional description, etc.), some of the information may need to betransferred to both the source code and the comments document, some ofthe information may only need to be transferred to the commentsdocuments, and other information may only need to be transferred to thesource code under development. As shown in FIG. 1, current “paste”operations and clipboard viewers only allow designation of a singledestination, requiring the user to perform multiple copy and pasteoperations to achieve the desired results in this situation.

Therefore, there is a need in the art for a system and method whichallows a user to view, manage, manipulate, and transfer selectedinformation elements from multiple sources to multiple destinations in amore efficient and centralized manner.

SUMMARY OF THE INVENTION

The present invention provides an Intermediate Viewer (“IV”) for atransfer buffer allows a user to see, hear, and/or watch the contents ofa transfer buffer which contains information elements (e.g. text,paragraphs, images, sound clips, etc.) taken from multiple sources. Theuser may manipulate, edit, and rearrange the information elements priorto delivering it to one or more destinations. Additionally, the IVallows the user to designate sets of destinations, and then to selectinformation elements currently held in the transfer buffer for deliveryto a particular set or several sets of destinations.

For example, if a user copies five information elements into a transferbuffer from one or more sources, he or she may use the IV toview/see/hear/watch those five information elements, rearrange them,copy them, etc. The user may also designate, for example 3 destinationsfor information, such as a web page being edited, a document beingedited with a word processor, and a graphics editing program. He cangroup these destinations such as:

-   -   Group A Destinations=web page and document and graphics editor;    -   Group B Destinations=web page and document only    -   Group C Destinations=document and graphics editor only

Then, using the IV to select one or more of the five informationelements, the user may selectively transfer the selected informationelements to a set of destinations. For example, he may select twographic images currently held in the transfer buffer, and transfer themto Group C so that they are inserted into the document being edited andthe graphics editor image, but not into the web page being edited.

BRIEF DESCRIPTION OF THE DRAWINGS

The following detailed description when taken in conjunction with thefigures presented herein provide a complete disclosure of the invention.

FIG. 1 illustrates the typical user interfaces and system actions of“cutting and pasting” information from one application program toanother.

FIG. 2 shows the typical logical process in a general manner fortransferring content from one application program or system function toanother.

FIG. 3 depicts a generalized computing platform architecture, such as apersonal computer, server computer, personal digital assistant,web-enabled wireless telephone, or other processor-based device.

FIG. 4 shows a generalized organization of software and firmwareassociated with the generalized architecture of FIG. 1.

FIG. 5 illustrates a process of consolidating information from 3 sourcesinto a new document.

FIG. 6 illustrates a logical process according to the present invention.

FIG. 7 shows an example graphical display of consolidated information inthe Intermediate Viewer.

FIG. 8 shows a “clean” display option of consolidated information in theMeta Intermediate Viewer.

FIG. 9 illustrates a rearranged set of information elements as seen inthe Intermediate Viewer.

FIG. 10 depicts the drag-and-drop operation for consolidatinginformation into the Intermediate Viewer according to an enhancedembodiment of the present invention.

FIG. 11 illustrates an example of transferring selected content from theIntermediate Viewer to multiple destinations as defined by sets ofdestinations.

FIG. 12 shows an aspect of an enhanced embodiment of the presentinvention in which a spell check, grammar checker, or both are invokedto check transferred text before it is delivered to one or moredestinations.

DETAILED DESCRIPTION OF THE INVENTION

The present invention is preferably realized as an enhancement of therelated inventions, but may be alternately realized in some embodimentsas a stand alone tool or as an improvement to other products andapplication program. As such, the present invention will be described indetail relative to the details of the related inventions. Many detailsof the related inventions are repeated herein for better understandingof the present invention, but this should not be construed as alimitation of the various available embodiments of the presentinvention. It is within the skill of those in the art to adapt thepresent invention to other embodiments, when provided with thedescription contained herein.

The first related invention described in the related patent applicationentitled “System and Method for Content and Information Transfer BetweenProgram Entities”, filed by Yen-Fu Chen, et al., and incorporatedherein, addresses the aforementioned limitations of information transferbetween program entities to a large degree. The related inventionenables users to preselect or pre-designate one or more destinationcontent area(s) or points, and then to only perform the highlightingaction in the source files or documents to produce copy/paste resultswithout any additional mouse clicks or touching the keyboard.

According to one aspect of the first related invention, the userinitially designates one or more insertion points or replacement areasfor receiving transferred content in a destination UI, then switches toa source UI, highlights content to be transferred, and the systemperforms the copy or paste operation without any additional user action,including any conversion as may be necessary.

Then, the user may simply navigate to another point in the same source,or switch to another source UI, select content, and it will be “pasted”automatically into the destination without the user having to switchback to the destination UI or perform any additional paste or insertcommand actions.

However, this arrangement depends on a designated destinationapplication or document to be the point of consolidation of informationfrom the source applications and documents. For example, if a user iscreating a new document (59) using the Lotus WordPro word processorprogram, and there is a need to consolidate information from a MicrosoftExcel™ spreadsheet (52), and image (53) from Corel Photohouse™ imageeditor, and a portion of a web page (56) with an associated graphicimage being viewed with Netscape Navigator web browser program, as shownin FIG. 5.

In this figure, each arrow leading from a source document to theclipboard or paste buffer (500) represents an user action to switch tothe appropriate application user interface (51, 52, 55) such as anAlt-Tab key combination in MS Windows, highlighting the desired contentto be copied to the new document such as by clicking-and-dragging with amouse, and executing a copy or cut operation such as by selecting Editand Copy from a drop down list in the source application GUI (51, 53,55). Each of these groups of operations, then, potentially involves 4 ormore user actions.

Each “pasting” operation is represented by an arrow leading from theclipboard or paste buffer (500) into the new document (59). A pasteoperation includes switching back to the destination application userinterface (57) such as by Alt-Tab key combination, then selecting apoint for insertion in the new document (59) such as by clicking in thedocument with a mouse, and then executing a paste operation such as byselecting Edit and Paste from a drop down list in the destinationapplication GUI (57). Each of these paste operation represents 4 or moreuser actions.

To further complicate matters, each application GUI may use slightlydifferent actions to perform a cut, copy or paste. As such, just toconsolidate information from three sources into one destination, 24 ormore user actions may be required.

Using the first related invention, this effort can be significantlyreduced by allowing the user to first designate a single insertion pointin the destination document, and then to visit each source and selectinformation to be automatically transferred to the destination withoutreturning to the GUI for the destination until all the sources have beendesignated.

This, though, effectively concatenates all of the selected informationinto one long series of information elements in the source document.Consider the following example, wherein a user first transfers the tableof numbers.

Name Age Miles Driven Bob 23 1023 Jane 44 925 Hal 58 2041

from the spreadsheet to the new document. Next, the user transfers animage, which we will refer to as <Map_Image>, from Corel Photohouse tothe new document. Finally, the user transfers the following text andimage from a web page:

-   -   “Our three drivers celebrate the conclusion of their trip to see        all of the sites where Elvis Presley ate peanut butter        sandwiches in public.” <Group_Photo>

to the new document. In such a case, the user would then return to theGUI for editing the new document, where the following content wouldappear:

<Map_Image> Name Age Miles Driven Bob 23 1023 Jane 44 925 Hal 58 2041

-   -   “Our three drivers celebrate the conclusion of their trip to see        all of the sites where Elvis Presley ate peanut butter        sandwiches in public.” <Group_Photo>

The information elements (e.g. the table, images, and paragraph) are nowindividually editable, and may be moved, edited, changed, deleted, etc.,at will.

In many instances, though, it is desirable to maintain the relationshipbetween the information elements for convenience of manipulation, andfor source tracking. For example, the <Group_Photo> is associatedoriginally with the web page and the paragraph “Our three drivers . . .”. As such, it may be desirable to manipulate them together (e.g. moves,deletes, updates, etc.) in the new document. Additionally, the threeslines of the table are logically associated with each other, and it maybe desirable to keep them together while editing the new document.

Unfortunately, though, when the content is “pasted” using the conventionmeans provided by most operating systems and application suites theinformation elements are not maintained in a logical association witheach other.

Therefore, there was a need in the art for a user interface and toolwhich provides a way for a user to see the contents of a transfer buffer(e.g. clipboard) taken from multiple information sources, manage andchange the buffer contents in a manner which maintains logicalassociation of information elements with respect to their sources, andthen to deliver that managed and manipulated information to adestination of the user's choice.

The Meta Window described in the second related invention, entitled“Meta Window for Merging and Consolidating Multiple Sources ofInformation”, for which the patent application has been incorporatedherein, provides a convenient place (e.g. a single user interface) whereall information elements copied from multiple sources can be betterorganized, either as information elements consolidated into the MetaWindow, or as a set of sub-windows organized inside the Meta Window. Assuch, the second related invention's advantages apply not only toauto-paste operations, but extend to advanced operations for combiningand managing information such as text, images, video, audio, etc.

According to one aspect of the second related invention, the userinitially designates one or more insertion points or replacement areasfor receiving transferred content in a destination user interface(“UI”), then switches to a first source UI. The user then designates thefirst source as a Meta Window source, such as by selecting a menu optionor icon. The user then navigates to a second source UI, designating italso as a source, and subsequently to additional source UI's, if needed.The Meta Window is automatically invoked following designation of thesecond source UI, and the entire contents of each source document orfile are copied into the Meta Window.

After designating all of the source documents and files, the user maynavigate to the Meta Window, conveniently perform manipulation of thecontent such as rearrangement of the content, and finally transfer thefinal content to the designated destination. This allows the user todeal with the multiple source information elements while within a singleuser interface environment, e.g. the Meta Window environment, which ismore convenient and efficient than navigating among multiple source UI'sas previously allowed by the related invention.

The Meta Window maintains logical association between informationelements with respect to their sources, such as all elements from afirst word processor are logically grouped and manipulated together, allelements from an image editor are logically grouped and manipulatedtogether, and so forth. This logical association can be conveyed to theuser in a manner which is intuitive to understand, such as a paragraphof text and an image from a single source may be shown with a greendotted line encompassing them together, and a table of text havingseveral lines of information taken from another single source may have ared dotted line encompassing the entire table. Optionally, the sourcemay be identified with each group of logically associated elements usingfly over text or a small marker or tag element, or may be indicated as agroup by placing them in graphical elements which appear to besub-windows within the Meta Window.

When the user has completed reviewing and manipulating the contents ofthe transfer buffer, the consolidated or merged information can bedelivered to a selected destination such as a web page file, wordprocessor file, etc.

According to one aspect of the second related invention, the user cansimply consolidate sources into the Meta Window by dragging icons whichrepresent each source file or element onto an icon representing the MetaWindow.

According to another aspect of the second related invention, the usermay elect to have links, such as Object Linking Environment (“OLE”)links created for each information element to its source, and a useroption may be activated to automatically “refresh” or update theconsolidated information by retrieving newer information elements fromthe same source, if available.

According to yet another aspect of the second related invention, theMeta Window maintains a list of manipulation actions performed by theuser, and allows the user to “undo” or reverse any or all of themanipulation actions previously performed.

According to an optional embodiment of the second related invention,each group of logically associated information elements may be indicatedas a group by placing them in graphical elements which appear to besub-windows within the Meta Window.

The present invention is preferably realized as an enhancement orextension to these two related inventions, using some of thefunctionality of both while providing additional functionality to allowa user to designate and manage multiple destinations for selectedinformation elements. However, alternate embodiments of the presentinvention include realizations which do not incorporate or depend uponthe related inventions. For better clarity and better understanding, wewill refer throughout this document to the present invention as an“Intermediate Viewer” (“IV”), and we will first present details of therelated inventions for completeness of disclosure.

Suitable Computing Platforms

The present invention is preferably realized as computer-executable codesuch as compiled software, scripts, or portable programs, in conjunctionwith existing application programs, operating systems, and computerhardware. For purposes of completeness, we first present a generalizedview in FIGS. 3 and 4 of typical computer hardware and software which issuitable for realization of our invention. Many variations of thesecomputer platform details may be made without departing from the scopeof the invention, as will be readily recognized by those skilled in theart.

Common computing platforms such as personal computers, web servers, andweb browsers, as well as proprietary computing platforms, may be used inrealization of the present invention. These common computing platformscan include, but are not limited to, personal computers as well asportable computing platforms, such as personal digital assistants(“PDA”), web-enabled wireless telephones, and other types of personalinformation management (“PIM”) devices.

Therefore, it is useful to review a generalized architecture of acomputing platform which may span the range of implementation, from ahigh-end web or enterprise server platform, to a personal computer, to aportable PDA or web-enabled wireless phone.

Turning to FIG. 3, a generalized architecture is presented including acentral processing unit (31) (“CPU”), which is typically comprised of amicroprocessor (32) associated with random access memory (“RAM”) (34)and read-only memory (“ROM”) (35). Often, the CPU (31) is also providedwith cache memory (33) and programmable FlashROM (36). The interface(37) between the microprocessor (32) and the various types of CPU memoryis often referred to as a “local bus”, but also may be a more generic orindustry standard bus.

Many computing platforms are also provided with one or more storagedrives (39), such as hard-disk drives (“HDD”), floppy disk drives,compact disc drives (CD, CD-R, CD-RW, DVD, DVD-R, etc.), and proprietarydisk and tape drives (e.g., Tomega Zip™ and Jaz™, Addonics SuperDisk™,etc.). Additionally, some storage drives may be accessible over acomputer network.

Many computing platforms are provided with one or more communicationinterfaces (310), according to the function intended of the computingplatform. For example, a personal computer is often provided with a highspeed serial port (RS-232, RS-422, etc.), an enhanced parallel port(“EPP”), and one or more universal serial bus (“USB”) ports. Thecomputing platform may also be provided with a local area network(“LAN”) interface, such as an Ethernet card, and other high-speedinterfaces such as the High Performance Serial Bus IEEE-1394.

Computing platforms such as wireless telephones and wireless networkedPDA's may also be provided with a radio frequency (“RF”) interface withantenna, as well. In some cases, the computing platform may be providedwith an infrared data arrangement (IrDA) interface, too.

Computing platforms are often equipped with one or more internalexpansion slots (311), such as Industry Standard Architecture (ISA),Enhanced Industry Standard Architecture (EISA), Peripheral ComponentInterconnect (PCI), or proprietary interface slots for the addition ofother hardware, such as sound cards, memory boards, and graphicsaccelerators.

Additionally, many units, such as laptop computers and PDA's, areprovided with one or more external expansion slots (312) allowing theuser the ability to easily install and remove hardware expansiondevices, such as PCMCIA cards, SmartMedia cards, and various proprietarymodules such as removable hard drives, CD drives, and floppy drives.

Often, the storage drives (39), communication interfaces (310), internalexpansion slots (311) and external expansion slots (312) areinterconnected with the CPU (31) via a standard or industry open busarchitecture (38), such as ISA, EISA, or PCI. In many cases, the bus(38) may be of a proprietary design.

A computing platform is usually provided with one or more user inputdevices, such as a keyboard or a keypad (316), and mouse or pointerdevice (317), and/or a touch-screen display (318). In the case of apersonal computer, a full size keyboard is often provided along with amouse or pointer device, such as a track ball or TrackPoint™. In thecase of a web-enabled wireless telephone, a simple keypad may beprovided with one or more function-specific keys. In the case of a PDA,a touch-screen (318) is usually provided, often with handwritingrecognition capabilities.

Additionally, a microphone (319), such as the microphone of aweb-enabled wireless telephone or the microphone of a personal computer,is supplied with the computing platform. This microphone may be used forsimply reporting audio and voice signals, and it may also be used forentering user choices, such as voice navigation of web sites orauto-dialing telephone numbers, using voice recognition capabilities.

Many computing platforms are also equipped with a camera device (3100),such as a still digital camera or full motion video digital camera.

One or more user output devices, such as a display (313), are alsoprovided with most computing platforms. The display (313) may take manyforms, including a Cathode Ray Tube (“CRT”), a Thin Flat Transistor(“TFT”) array, or a simple set of light emitting diodes (“LED”) orliquid crystal display (“LCD”) indicators.

One or more speakers (314) and/or annunciators (315) are oftenassociated with computing platforms, too. The speakers (314) may be usedto reproduce audio and music, such as the speaker of a wirelesstelephone or the speakers of a personal computer. Annunciators (315) maytake the form of simple beep emitters or buzzers, commonly found oncertain devices such as PDAs and PIMs.

These user input and output devices may be directly interconnected (38′,38″) to the CPU (31) via a proprietary bus structure and/or interfaces,or they may be interconnected through one or more industry open busessuch as ISA, EISA, PCI, etc.

The computing platform is also provided with one or more software andfirmware (3101) programs to implement the desired functionality of thecomputing platforms.

Turning to now FIG. 4, more detail is given of a generalizedorganization of software and firmware (3101) on this range of computingplatforms. One or more operating system (“OS”) native applicationprograms (43) may be provided on the computing platform, such as wordprocessors, spreadsheets, contact management utilities, address book,calendar, email client, presentation, financial and bookkeepingprograms.

Additionally, one or more “portable” or device-independent programs (44)may be provided, which must be interpreted by an OS-nativeplatform-specific interpreter (45), such as Java™ scripts and programs.

Often, computing platforms are also provided with a form of web browseror microbrowser (46), which may also include one or more extensions tothe browser such as browser plug-ins (47).

The computing device is often provided with an operating system (40),such as Microsoft Windows™, UNIX, IBM OS/2™, LINUX, MAC OS™ or otherplatform specific operating systems. Smaller devices such as PDA's andwireless telephones may be equipped with other forms of operatingsystems such as real-time operating systems (“RTOS”) or Palm Computing'sPalmOS™.

A set of basic input and output functions (“BIOS”) and hardware devicedrivers (41) are often provided to allow the operating system (40) andprograms to interface to and control the specific hardware functionsprovided with the computing platform.

Additionally, one or more embedded firmware programs (42) are commonlyprovided with many computing platforms, which are executed by onboard or“embedded” microprocessors as part of the peripheral device, such as amicro controller or a hard drive, a communication processor, networkinterface card, or sound or graphics card.

As such, FIGS. 3 and 4 describe in a general sense the various hardwarecomponents, software and firmware programs of a wide variety ofcomputing platforms, including but not limited to personal computers,PDAs, PIMs, web-enabled telephones, and other appliances such as WebTV™units.

General Logical Processes of the Invention

We now turn our attention to disclosure of the present inventionrelative to the processes and methods preferably implemented as softwareand firmware on such a computing platform. It will be readily recognizedby those skilled in the art that the following methods and processes maybe alternatively realized as hardware functions, in part or in whole,without departing from the spirit and scope of the invention.

In general, the first related invention provides the user the ability tofollow this process, which is incorporated preferably by the realizationof the present invention:

-   -   1. Declare destination content area for pasting or insertion in        a destination UI;    -   2. Enable highlighting or selecting content to automatic copy        selected information and store it in memory (e.g.        buffer/clipboard) for future usage, as well as to automatically        insert or paste the selected information into the pre-designated        destination area;    -   3. Switch to source UI's, and simply highlight or select the        desired content portion(s) which triggers dynamic        insertion/concatenation into the declared content field.    -   4. Receive an automatic notification that a portion of the        highlighted source information is not compatible with the        destination; and    -   5. Define new rule or process for handling the incompatible        content such as conversion, isolation and annotation, such that        future similar situations are handled automatically according to        the user's preferences.

Advantages over presently available methods and user interfaces are:

-   -   1. User-friendly: the invention utilizes maneuvering techniques        with which users are already familiar, such as double mouse        clicks, dragging to highlight, etc.;    -   2. Convenient: the invention provides a user a new way of        selecting destination for paste operations, and offers a quicker        way of copy/paste by eliminating keyboard strokes, mouse clicks,        navigation and toggling between different program windows and        UI's.    -   3. Intuitive: Users can learn or “discover” that in this new        mode, content highlighting triggers copy/paste effortlessly,        immediately seeing the results of the highlighting action, and        proceeding to experiment with various ways of applying and        exploring this invention.    -   4. Time-Saving: Reduces time to compile information from        multiple sources by making copy-paste user interface methods        much more efficient.    -   5. Increases productivity: By reducing fatigue and tediousness        in application program user interfaces, users are allowed to        produce more accurate results with less effort in less time.

Turning to FIG. 6, a first logical process of the present invention isshown at a high level. This method may be implemented as compiled code,scripts, or interpretable code (e.g. Java, applets, servlets, etc.) infull or part within application programs, operating systems, serversuites, utility programs, or proprietary code or hardware.

When creating or editing a new computer resource such as a computer fileor document and the user wishes to insert or copy content from multiplesources to the resource being edited, the user may execute the method(60) shown.

The user navigates (61) to a first source application user interface(“UI”), and designates (62) it as a source for the transfer buffer, suchas by selecting a menu option or clicking on an icon. The user selectsone or more source information elements in this UI which are copied intothe transfer buffer. The first source application UI is then optionallylocked (63) (e.g. user changes and manipulations of content aredisallowed), and preferably the UI is minimized, moved to the back ofthe desktop, or otherwise removed from the screen.

Then, the user navigates (64) to a second source application UI, anddesignates (65) it as a source for the transfer buffer in a similarmanner. Again, the user selects one or more source information elementsin this UI which are copied into the transfer buffer. The second sourceapplication UI is then locked (66), and preferably the second UI isminimized, moved to the back of the desktop, or otherwise removed fromthe screen.

Now that at least two sources have been designated, the IntermediateViewer (“IV”) user interface is displayed (67) at the forefront of thescreen or desktop, in which the select information elements from thefirst source and second source are shown as collected in the transferbuffer. Also, preferably, the information elements taken from bothsources are maintained in logical association with each other withrespect to their source, and this relationship is indicated to the user.

If (68) more sources are to be combined in the IV, the user navigates(69) to each additional source UI, designates (600) the additionalsource as a source and source elements as previously described, whichoptionally locks (and minimizes, preferably) the addition source UI(s),and copies (602) the selected information elements of the additionalsource(s) into the transfer buffer (preferably maintaining logicalassociation of information elements) such that they are also displayedin the IV UI.

After all sources have been combined into the IV UI, the user thendesignates (610) a plurality of insertion points or areas in one or moredestination documents, files, folders, user interfaces, etc. Next, theuser defines sets of these designated destination points and areas whichlogically belong together for receipt of information elements. Accordingto the preferred embodiment, the user may define a single destinationinto more than one sets of destination such that information may betransferred to each destination according to one or more groups ofdestinations. For example, Table 1 provides an example of such adefinition of three destinations including a web page being created withNetscape Composer™, a document being edited with Lotus WordPro™, andIBM's VisualAge™ software source code editor.

TABLE 1 Example Destination Group Designations by DestinationDestination Unit Area or Point Destination Set index.htm Table 1, Row 1,cell 3 A document.lwp page 3, line 9 A document.lwp page 8, pinned toTOP B, C dosomething.c page 5, line 1 C dosomething.c page 102, line 22B, D

In this example, point or area in a table #1 at row 1, cell 3, in a webpage under development called “index.htm” has been designated as adestination as part of destination set A. Similarly, two points in aLotus WordPro™ file named “document.lwp” have been designated asdestinations, with the first point (page 8, pinned to the Top of Page”included in destination set A, and the second point (page 5, line 1)included in destination sets B and C. Likewise, the “C” programmingsource code file called “dosomething.c” has two destination points init, a first one at page 5 line 1 in destination set C, and a secondpoint at page 102 line 22 including in destination sets B and D.

Known user interface dialog techniques such as drop down lists, buttons,and text input boxes are preferably used to allow the user to create anew set of destinations and associate each destination with a set.

Next, the user may then go to the IV UI, and manipulate (603) theinformation elements in groups by logical association, or individually.This manipulation may include rearranging the order in which they appear(originally, they are stored in the order they were designated as asource), deleting them, copying them, and changing them.

When the manipulated source information elements are in an acceptableform to the user, the user may elect select one or more of themanipulated information elements (612) such as by highlighting orright-clicking them in the IV UI, and then may select one or moredestination sets to which the selected manipulated information elementsare to be transferred (e.g. pasted). Again, typical GUI controls such asdrop-down lists, radio buttons, text input boxes, and the like can beemployed to produce a menu or pop-up dialog which, upon user invocationsuch as double right-clicking, provides the user with options forselecting the defined destination sets for receiving the selectedinformation elements.

When the user finalizes his or her choices as to the sets ofdestinations, the selected information elements are transferred (613) tothe destinations as defined by a the set definitions. A reverse lookupprocess can be employed to determine which individual destinations toreceive the selected information elements, such as by re-ordering theinformation shown in Table 1 to appear in a form such as that shown inTable 2.

TABLE 2 Example Destination Group Designations Reordered Destination SetDestination Unit(Area or Point) A index.htm/(Table 1, Row 1, cell 3); Bdocument.lwp(p 8, TOP), dosomething.c (p 102, 122); C document.lwp(p 8,TOP), dosomething.c(p 5, 11); D dosomething.c(p 102, 122)

In this reordering of the definitions of destination sets, it isstraightforward for the logical process of the invention to determinewhich destination should receive selected information elements basedupon the user's set selection. For example, if the user selects severalinformation elements, and then indicates to transfer those elements todestination set B, the system can determine that the elements should betransferred to the top of page 8 in document.lwp, as well as to line 22of page 102 in the source code file dosomething.c.

The logical process allows the user to continue (614) transferring (612,613) and/or manipulating (603) the collected information elements viathe IV UI until he or she has completed the desired transfers, at whichtime the logical process of the invention is completed (604). If thesource UI's were locked and/or minimized, they are unlocked (606) atthis point, and preferably are restored to their original prominence onthe user's computer display. Optionally, the system may be configured toleave the source UI's minimized, or to automatically close them.

Action Logs and Undo Functions

As the sources are designated, the invention preferably keeps track ofthese sources by an action log, such as the one shown in Table 3, whichuses the previous example provided in the Background of the Inventionfor illustration. Here, according to our preferred embodiment, we recordthe action log in a markup-style language such as XML, but this can beaccomplished using a number of other formats (e.g. binary, text, etc.).

TABLE 3 Example Action Log <Intermediate_Viewer_action_log><element_group> <element_group_source>“miles.xls”</element_group_source> <table_element> <row>“Name{circumflex over ( )}Tab Age {circumflex over ( )}Tab Miles Driven</row> <row> Bob {circumflex over ( )}Tab 23 {circumflex over ( )}Tab1023 </row> <row> Jane {circumflex over ( )}Tab 44 {circumflex over( )}Tab 925 </row> <row> Hal {circumflex over ( )}Tab 58 {circumflexover ( )}Tab 2041 </row> </table_element> </element_group><element_group> <element_group_source>“Map_image.jpg”</element_group_source> <graphic_element> Map_image</graphic_element> </element_group> <element_group><element_group_source> http://www.anypage.com </element_group_source><text_element> “Our three drivers celebrate the conclusion of their tripto see all of the sites where Elvis Presley ate peanut butter sandwichesin public.”  </text_element>  <graphic_element> Group_Photo</graphic_element> </element_group> </Intermediate_Viewer_action_log>

In this action log, which is built during the steps of designating eachsource, the order of designation is preserved, which represents theorder that the information elements will be displayed, preferably alongwith indicators of logical groups according to the sources from wherethey were copied. FIG. 7 shows such an example display of theseelements.

The initial arrangement (70) of information elements are shown on aportion (79) of a computer display in the Meta Window GUI, in the orderin which they were originally designated as sources, e.g. spreadsheettable (71) first, map image (73) second, text and image (75) from webpage third, as in our example.

Additionally, the logical grouping of elements are indicated to theuser, such as by the display of dotted lines or shaded backgrounds,colors of text, etc., including an indicator of the source of theinformation elements (72, 74, 76, 78). According to the preferredembodiment, these group indicators can be suppressed (e.g. turned off),as well as the source indicators can be suppressed, to yield a layout(80) such as that shown in FIG. 8 (e.g. a clean layout view).

The user can manipulate the information elements, such as changing theirorder of appearance, using traditional methods within the Meta WindowGUI. For example, the user may move the map image to appear last on thepage, as the arrangement (90) of information elements shown in FIG. 9.This would result in a change to the action log recording this movement,such as the example given in Table 4.

TABLE 4 Example Re-arranged Action Log <Intermediate_Viewer_action_log><element_group> <element_group_source>“miles.xls”</element_group_source> <table_element> <row>“Name{circumflex over ( )}Tab Age {circumflex over ( )}Tab Miles Driven</row> <row> Bob {circumflex over ( )}Tab 23 {circumflex over ( )}Tab1023 </row> <row> Jane {circumflex over ( )}Tab 44 {circumflex over( )}Tab 925 </row> <row> Hal {circumflex over ( )}Tab 58 {circumflexover ( )}Tab 2041 </row> </table_element> </element_group> <element_group> <element_group_source> http://www.anypage.com</element_group_source> <text_element> “Our three drivers celebrate theconclusion of their trip to see all of the sites where Elvis Presley atepeanut butter sandwiches in public.”  </text_element>  <graphic_element>Group_Photo </graphic_element> </element_group> <element_group><element_group_source> “Map_image.jpg”</element_group_source><graphic_element> Map_image </graphic_element> </element_group></Intermediate_Viewer_action_log>

Further according to the preferred embodiment, a Do-Undo list ismaintained by the IV, such that the user can reverse the effect of anyoperation the user performs. For example, if the user moves an elementfrom its initial position, the Do-Undo list records the movement,including the initial position. If the user selects “Undo-Move”, theelement will be automatically restored to its original position. Table 5shows an example of such a list using the previously described scenario.

TABLE 5 Example Do-Undo List <Intermediate_Viewer_Do-Undo> <add>miles.xls </add> <add> Map_Image.jpg </add> <add> http://www.anypage.com</add> <group_operation> <delete> Map_Image.jpg </delete> <add>Map_Image.jpg </add> </group_operation> </Intermediate_Viewer_Do-Undo>

In this example, the “move” of the map image is accomplished by atwo-step operation of deleting the existing occurrence, and then addingit to the end of the list. If the user selects “undo-move” for this mapimage, the Do-Undo list may be modified in a way as shown in Table 6.

TABLE 6 Example Modified Do-Undo List <Intermediate_Viewer_Do-Undo><add> miles.xls </add> <add> Map_Image.jpg </add> <add>http://www.anypage.com </add> <group_operation> <delete> Map_Image.jpg</delete> <add> Map_Image.jpg </add> </group_operation><group_operation> <delete> *ALL* </delete> <add> miles.xls </add> <add>Map_Image.jpg </add> <add> http://www.anypage.com </add></group_operation> </Intermediate_Viewer_Do-Undo>

In Table 6, one method of restoring or undoing the action is shown inwhich all the elements are deleted and then are restored to theiroriginal order. In alternate embodiments, the list may include elementsequence numbers or indicators, and the moved element may be restored toits original sequence number. Other known methods of maintainingreversible lists of action may be employed, as well.

Enhanced Consolidation Operation

According to another aspect of the present invention, the user interfacefor the IV UI is enhanced to allow “drag and drop” consolidation ofsource documents into the IV UI by selecting an icon or file listingrepresenting a source file with a mouse or pointing device (e.g. stylus,trackball, etc.), dragging the selected item onto an icon or listing forthe Meta Window, and dropping them.

FIG. 10 illustrates such a convenient operation (1100), wherein the icon(1101) for the source MS Excel™ file is first dragged and dropped (1105)onto the IV icon (1104). Next, the icon (1102) for the image file isdragged and dropped (1106) on the IV icon (1104). Finally, an icon forthe source web page (1103) is dragged and dropped onto the IV icon(1104).

Through use of this enhanced embodiment of the present invention, allswitching between application program GUI's is minimized or eveneliminated, allowing the user to quickly consolidate the informationinto the Meta Window, where the user can go straight away tomanipulating the information elements as needed.

In an alternate embodiment, a text-style listing of source files and theIV program can be dragged and dropped, as well, such as dragging anddropping text listings in the MS Windows Explorer environment (when theView-Details option is selected).

Illustration of Multiple Destination Sets

Turning now to FIG. 11, we revisit our example of three informationelements which were copied into the IV from multiple sources—a graphicmap image, a photograph, and a table of information. Once in the IV,they can be rearranged and manipulated as previously described. In theexample shown in FIG. 11, two destination sets X and Y have been definedby the user. Destination Set X is defined as a point or area within theword processor document.lwp file (1207) and the index.htm web page file(1209). Destination Set Y is defined as points or areas within thedosomething.c software source code file (1208) (e.g. such as a commentsarea), and in the index.htm web page file (1209).

As can be seen from this illustration, the IV (1104) is used to select(1201) the map and photo elements (1202) and transfer (1203) them to thefiles (1207, 1209) belonging to Destination Set X. Likewise, the IV(1204) is used to select (1204) the table element (1205), and totransfer it to the files (1208, 1209) belonging to the Destination Set Y(1206).

Enhanced Embodiment with Spell/Grammar Checker

Turning now to FIG. 12, an aspect of an enhanced realization of thepresent invention is disclosed in which a spell checker, grammarchecker, or both (1300) is invoked when selected text elements (1205)are designated for transfer (1301, 1302) to one or more destinations(1208, 1209). In this optional embodiment feature, the user mayconfigure the Intermediate Viewer (1104) to spell check and/or grammarcheck transferred text before delivering it to destination applicationprograms, documents, etc., in order to prevent transferring of errorsfrom the source to the destination(s).

A conventional spell checker and/or grammar checker can be employed forthis function, the source code for which is readily available fromsuppliers such as the WGrammar grammar checker engine and the SentrySpelling Checker engine, both from Wintertree Software.

If a spell and/or grammar check detects problems which require userintervention to correct, the text with the error may be transferred(1303) back to the user interface for the Intermediate Viewer for usercorrection, modification, or acceptance as is. Then, the revised textmay be returned (1304) to the checker (1300) for delivery (1301, 1302)into the selected destinations (1208, 1209).

CONCLUSION

The present invention may be realized in a variety of forms, programminglanguages, methodologies, and operating systems on a variety ofcomputing platforms without departure from the spirit and scope of thepresent invention. A number of example embodiment details have beendisclosed as well as optional aspects of the present invention in orderto illustrate the invention, but which do not define the scope of theinvention. Therefore, the scope of the present invention should bedetermined by the following claims.

1. A method comprising: receiving from a graphical user interface a userdesignation of a plurality of sets of copy command destination positionswithin contents of a computer file, wherein each destination point isallowed to be included in more than one set of destination points;displaying to said user information elements contained in an operatingsystem clipboard transfer buffer, receiving a user selection ofinformation elements in said clipboard transfer buffer, receiving a userdefinition of a subset of said previously-designated copy commanddestination positions; and automatically copying said selectedinformation elements to positions in said computer file correspondingaccording to said user defined subset of copy command destinationpositions.
 2. The method as set forth claim 1 further comprisingallowing user manipulation of said displayed information elements priorto automatically copying information elements.
 3. The method as setforth in claim 1 further comprising providing a do list and an undofunction for reversing actions recorded within said do list.
 4. Themethod as set forth in claim 1 wherein said copying comprises performingspell checking on text information elements selected for copying.
 5. Themethod as set forth in claim 1 wherein said copying comprises performinggrammar checking on text information elements selected for copying.